指標就在前方不遠處...
今日主題:二維陣列(續)
二維陣列的第1列啟始位址為x[0],以下分別代表著:(易混淆)
x[0]+1 : 第一列第2個元素位址
x+1 : 第二列第一個元素位址
請看程式碼:
#include <stdio.h>
#include <string.h>
main()
{
int x[2][3] = {1,2,3,4,5,6};
int i, j;
for(i = 0; i < 2; i++){
for (j = 0; j < 3; j++){
printf("&x[%d][%d] = %p\n", i, j, &x[i][j]);
}
}
printf("x[0]+1 = %p\n", x[0]+1);
printf("x+1 = %p\n", x+1);
}
結果如下:
&x[0][0] = 0x7fffe810e3a0
&x[0][1] = 0x7fffe810e3a4
&x[0][2] = 0x7fffe810e3a8
&x[1][0] = 0x7fffe810e3ac
&x[1][1] = 0x7fffe810e3b0
&x[1][2] = 0x7fffe810e3b4
x[0]+1 = 0x7fffe810e3a4
x+1 = 0x7fffe810e3ac
ted99tw提到:
x+1 : 第二列第一個元素位址
那 x+2 不就超出陣列範圍了
所以....要小心....
總裁說得對...
#include <stdio.h>
#include <string.h>
為什麼C++要 include <string.h> 不是指要 include <string> 就好了嗎?
是的,C++只要 include <string>。
其實那行是多餘的,因為尚未用到<string.h>字串功能,例如:strlen(),strcomp(),所以刪掉也可。
這是語法問題
#include <aaa>
#include "aaa.h"